package cn.iocoder.yudao.module.scrm.strategy;

import cn.iocoder.yudao.module.scrm.enums.common.CrmBizTypeEnum;

/**
 * 比较策略接口，定义了所有比较策略的通用行为。
 * <p>
 * 实现这个接口的策略类将具体定义如何处理给定的请求对象。
 * 未来可以扩展该接口，以支持更多类型的运算，如加减乘除等..。
 * </p>
 *
 * @Author LiZhiMin
 * @Date 2024/9/3 10:44
 */

public interface CompareStrategy {

    /**
     * 处理比较策略的核心方法。
     * <p>
     * 实现该方法的策略类需要根据具体的业务逻辑来处理请求对象。
     * </p>
     *
     * @param request             请求对象，通常是需要进行比较或校验的数据。
     * @param foreignKeyFieldName 外部业务类型字段名称，用于标识外部系统的数据字段。
     * @param majorKeyFieldName   主要业务类型字段名称，用于标识主要系统的数据字段。
     */
    void handle(Object request, String foreignKeyFieldName, String majorKeyFieldName, CrmBizTypeEnum crmBizTypeEnum) throws NoSuchFieldException, IllegalAccessException;
}
